這是今天的題目
此題目進去他給的連結後,會出現一個登入畫面。而後我們直接登入不輸入任何內容,會顯示登入成功。
於是我想到用檢查,去看看有沒有可利用價值的內容。
結果是我在他的cookie看到了password和user空白以及admin為False,那我們試著將admin改為True就會出現答案的畫面。
這題其實是很典型的授權繞過類的題目,當我把頁面打開並直接按登入會顯示登入成功,但為了找到flag我仔細瀏覽器的cookie發現裡面有user、password與admin=false 這類欄位,伺服器在每次請求時直接讀這些欄位來決定權限,沒有任何額外的驗證或簽名機制。cookie是存在使用者端、可以被開發者工具或像Burp之類的工具修改,只要把admin=false改成admin=true再重新載入頁面,伺服器就把我當成管理員處理並顯示flag。這題讓我了解到在做網頁時,應加入驗證機制。以避免因後端信任了客戶端提供的資料,讓客戶端的一次簡單改動就能繞過授權檢查。所以我們要做到的是,任何出現在客戶端會影響伺服器決策的資料都必須被懷疑為可被篡改。第二,測試授權時要主動檢查cookie,不要只看表面行為。